Dynamic message retrieval by subdividing a message queue into sub-queues

ABSTRACT

Exemplary embodiments provide methods and systems for dynamically changing a message retrieval scheme during runtime in a client/server electronic messaging system in which the server executes a message retrieval component and incoming messages received from the client is stored in a message queue. Aspects of the exemplary embodiment include accessing messaging business rules from a memory by a message retrieval component at runtime, wherein the messaging business rules define a primary retrieval scheme and a secondary retrieval scheme, and wherein a value provided for each of the primary retrieval scheme and the secondary retrieval scheme are selected from a combination of different message retrieval types including: First In First Out (FIFO), Last In First Out (LIFO), and random. The message retrieval component subdivides the message queue into sub-queues based on at least one of a message quantity limit and a message received time limit specified in the business rules. Each of the sub-queues is then accessed using the value of the secondary retrieval scheme; and messages from each of the sub-queues are retrieved using the value of the primary retrieval scheme.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of Patent Publication number20130254275 A1, filed Mar. 20, 2012, and published on Sep. 26, 2013,assigned to the assignee of the present application, and incorporatedherein by reference.

BACKGROUND

Middleware, such as message-oriented middleware (MOM), for example,includes software or hardware infrastructure such as web servers,application servers, messaging and similar tools that support sendingand receiving messages between distributed systems. Middleware canenable interoperability between applications that run on differentoperating systems by supplying services so the application can exchangedata in a standards-based way.

The computer software industry has several well established middlewareproducts that provide message queuing services to customers requiringasynchronous messaging for their enterprise applications. These productshave successfully provided asynchronous message retrieval features usinga First In First Out (FIFO) queuing scheme. Although the FIFO approachhas adequately met the requirements of many applications, it has beenunable to address the needs of applications that require a more diverseset of message retrieval options. As a result of this gap infunctionality, applications that require a random message retrievalscheme or a Last In First Out (LIFO) scheme, have required developers towrite “home grown” custom solutions to satisfy their requirements.

Accordingly, it would be desirable to provide methods and systems fordynamically changing a message retrieval scheme during runtime toenhance the functionality of messaging middleware so that a broader setof customer requirements can be met.

BRIEF SUMMARY

The exemplary embodiments provide methods and systems for dynamicallychanging a message retrieval scheme during runtime. Aspects of exemplaryembodiment include accessing messaging business rules from a memory by amessage retrieval component at runtime, wherein the messaging businessrules define a primary retrieval scheme and a secondary retrievalscheme, and wherein a value provided for each of the primary retrievalscheme and the secondary retrieval scheme are selected from acombination of different message retrieval types including: First InFirst Out (FIFO), Last In First Out (LIFO), and random. The messageretrieval component subdivides the message queue into sub-queues basedon at least one of a message quantity limit or a message received timelimit specified in the business rules. Each of the sub-queues is thenaccessed using the value of the secondary retrieval scheme; and messagesfrom each of the sub-queues are retrieved using the value of the primaryretrieval scheme.

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a diagram illustrating one embodiment of a dynamic messagingsystem.

FIG. 2 is block diagram graphically illustrating a LIFO messageretrieval scheme.

FIG. 3 is block diagram graphically illustrating a random messageretrieval scheme.

FIG. 4 is a block diagram showing an example schema of the messagingbusiness rules.

FIG. 5 is a flow diagram illustrating an embodiment of a process forperforming dynamic message retrieval based on the messaging businessrules.

FIG. 6 is a diagram graphically illustrating message processing based onthe messaging business rules of Example 1.

FIG. 7 is a diagram graphically illustrating message processing based onthe messaging business rules of Example 2.

DETAILED DESCRIPTION

The exemplary embodiment relates to dynamic message retrieval. Thefollowing description is presented to enable one of ordinary skill inthe art to make and use the invention and is provided in the context ofa patent application and its requirements. Various modifications to theexemplary embodiments and the generic principles and features describedherein will be readily apparent. The exemplary embodiments are mainlydescribed in terms of particular methods and systems provided inparticular implementations. However, the methods and systems willoperate effectively in other implementations. Phrases such as “exemplaryembodiment”, “one embodiment” and “another embodiment” may refer to thesame or different embodiments. The embodiments will be described withrespect to systems and/or devices having certain components. However,the systems and/or devices may include more or less components thanthose shown, and variations in the arrangement and type of thecomponents may be made without departing from the scope of theinvention. The exemplary embodiments will also be described in thecontext of particular methods having certain steps. However, the methodand system operate effectively for other methods having different and/oradditional steps and steps in different orders that are not inconsistentwith the exemplary embodiments. Thus, the present invention is notintended to be limited to the embodiments shown, but is to be accordedthe widest scope consistent with the principles and features describedherein.

The exemplary embodiments provide a messaging system with a dynamicmessage retrieval component that enables the messaging system todynamically change its message retrieval scheme during runtime based ona set of messaging business rules. The dynamic message retrievalcomponent 24 provides several message retrieval schemes for use by themessaging system, including FIFO, LIFO, and random message retrievalschemes. This enables each independent application to dynamicallycustomize the messaging system to meet its needs, and to have themessage retrieval scheme dynamically adjusts to business conditions asthey evolve over time, reducing the need for internal application logicto be customized.

FIG. 1 is a diagram illustrating one embodiment of a dynamic messagingsystem. The system 10 comprises a client/server architecture shown inwhich message-oriented-middleware 12 provides communication componentsthat support asynchronous messaging between client/server applications.The clients 18 may exist in various forms, including a personal computer(PC), (e.g., desktop, laptop, or notebook), a smart phone, a set-topbox, and the like. Both the server 14 and the clients 18 may includehardware components of typical computing devices, including at least oneprocessor 15, input devices (e.g., keyboard, pointing device, microphonefor voice commands, buttons, touch screen, etc.), and output devices(e.g., a display device, and the like). The input/output or I/O devicescan be coupled to the system either directly or through intervening I/Ocontrollers (not shown). Network adapters may also be coupled to thesystem to enable the data processing system to become coupled to otherdata processing systems or storage devices through intervening privateor public networks. Cable modems and Ethernet cards are just a few ofthe currently available types of network adapters. The server 14 andclients 18 may include computer-readable media, including at least onememory 17 and storage devices (e.g., flash memory, hard drive, opticaldisk drive, magnetic disk drive, and the like) containing computerinstructions that implement the functionality disclosed when executed bythe processor 15.

The server 14 hosts a messaging system 16 for access by the clients 18over a private or public network 20, such as the Internet, to enablemessaging for an enterprise, typically between the clients 18. Themessaging system 16 may support asynchronous calls between the clientand server applications. As the messaging system 16 receives incomingmessages from clients 18, the messages are first stored in a messagequeue 22 and subsequently retrieved according to a message retrievalscheme for forwarding to another process or client 18.

Many conventional messaging systems provide asynchronous messageretrieval from the message queue 22 using a First In First Out (FIFO)queuing and processing scheme. In a typical FIFO scheme, messages areplaced in a queue and processed in order of receipt. Whenever the system10 suffers from limited processing capacity and high demand, it ispossible that the system 10 will be unable to process all incomingmessages in a timely fashion. In such cases, messages at the end of themessage queue 22 can be penalized due to their relative position in themessage queue 22. In many information systems, the FIFO messageretrieval scheme is not sufficient, particularly in cases where thebusiness requirement is to treat a certain quantity of incoming requestfairly within a certain time period. In such a case where an enterpriseor an application requires a more diverse set of message retrievaloptions, a developer is traditionally needed to customize the messagingsystem 16 to provide other retrieval options, such as random messageretrieval or Last In First Out (LIFO) message retrieval.

According to the exemplary embodiment, the messaging system 16 isprovided with a dynamic message retrieval component 24 that provides themessaging system 16 with the ability to dynamically change its messageretrieval scheme during runtime based on messaging business rules 26.The dynamic message retrieval component 24 provides several messageretrieval schemes for use by the messaging system 16, including FIFO,LIFO, and random message retrieval schemes. This enables eachindependent application to dynamically customize the messaging system 16to meet its needs, and to have the message retrieval scheme dynamicallyadjusts to business conditions as they evolve over time. Such anapproach reduces the need for applications, including the messagingsystem 16, to be customized.

Accordingly, the basic function of the dynamic message retrievalcomponent 24 is to enable the messaging system 16 to utilize acombination of different message retrieval types and to allow thiscombined functionality to be dynamically configured during run-timeusing messaging business rules 26. According to one aspect of theexemplary embodiment, the business rules 26 provide the messaging system16 with a LIFO and a random message retrieval schemes in addition to thestandard FIFO retrieval scheme.

FIG. 2 is block diagram graphically illustrating the LIFO messageretrieval scheme. In the Last In First Out (LIFO or stack) messageretrieval, process 1 may place a new message request 50 on top of aqueue/stack 52. And process 2 retrieves the new message request 50 fromthe top of the queue/stack 52 so that the latest message request isprocessed first. The LIFO retrieval process is opposite from a FIFOprocess where process 2 would retrieve a message request from the bottomof the queue/stack 52 so that the earliest message request is processedfirst.

FIG. 3 is block diagram graphically illustrating the random messageretrieval scheme. In random message retrieval, process 1 may place a newmessage request 50 on top of a queue/stack 52. But process 2 retrievesmessage requests from a random position in queue/stack 52.

FIG. 4 is a block diagram showing an example schema of the messagingbusiness rules 26. According to one embodiment, the messaging businessrules 26 may contain values for the following parameters: a primaryretrieval scheme 60, a secondary retrieval scheme 62, a quantity limit64, a time limit 66, and a calendar entry 68.

According to the exemplary embodiment, the dynamic message retrievalcomponent 24 subdivides the message queue 22 into sub-queues based onvalues entered for the quantity limit 64 or time limit 66 of themessaging business rules 26. The value for secondary retrieval scheme 62controls the order in which the messaging system 16 accesses thesub-queues. And the values for the primary retrieval scheme 60 controlsthe order in which the messaging system 16 accesses the messages withineach of the sub-queues.

Possible values for the primary retrieval scheme 60 include FIFO, LIFO,and random for the message retrieval scheme. Possible values for thesecondary retrieval scheme include FIFO, LIFO, random, and NONE for themessage retrieval scheme. When NONE or no value is supplied for thesecondary retrieval scheme, the messaging system 16 may use the givenprimary retrieval scheme as a default to access the messages in themessage queue 22.

The value of the quantity limit 64 is used along with the primary andsecondary retrieval schemes 60 and 62 to set different retrieval schemesbased the number of messages received. In one embodiment, this businessrule parameter is not applicable when the secondary retrieval scheme isNONE.

The value of the time limit 66 may be used as an alternative to thequantity limit 66 parameter described above. The time limit 66 is usedalong with the primary and secondary retrieval schemes to set differentretrieval schemes based the number of messages received in a givenamount of time. In one embodiment, this business rule parameter is notapplicable when the secondary retrieval scheme is NONE.

A value of the calendar entry 60 may be used to set different retrievalschemes based on calendar dates for multiple time periods. When thisoption is used, the messaging system 16 may be given multiple values foreach of the business rules listed above based on the calendar. When thecalendar entry is “UNSET” with no corresponding entries, all othersettings may remain valid regardless of the current date-time.

Accordingly, the system 10 enables the messaging system 16 to perform avariety of message retrieval schemes dynamically in response to themessaging business rules 26, which can be updated anytime. By definingparameters such as quantity and time limit 64 and 66 and calendarentries 68, the messaging business rules 26 allow the message retrievalscheme of the messaging system 16 to adjust to business conditionswithout requiring manual intervention. Several embodiments of thisapproach are described further below.

Although the server 14 is shown as a single computer, it should beunderstood that the functions of server 14 may be distributed over morethan one server, and the functionality of the messaging system 16 andthe dynamic message retrieval component 24 may be combined into a lesseror a greater number of modules/components. For example, the dynamicmessage retrieval component 24 may be implemented as more than onecomponent and/or may be implemented as part of the messaging system 16or as a component that is separate from the messaging system 16. In analternative embodiment (not shown), the messaging system 16 and thedynamic message retrieval component 24 of FIG. 1 may be implemented as avirtual entity whose functions are distributed over multiple clients 18.

FIG. 5 is a flow diagram illustrating an embodiment of a process forperforming dynamic message retrieval based on the messaging businessrules 26. According to the exemplary embodiment, the process may beperformed at least in part by dynamic message retrieval component 24executing on the processor 15 of the server 14. Upon startup of thedynamic message retrieval component 24, the current date timestamp ofthe server 14 is retrieved (block 100).

The dynamic message retrieval component 24 retrieves a set of values (ifany) corresponding to the calendar entry 68 that are valid for thecurrent date timestamp (block 102). The dynamic message retrievalcomponent 24 determines whether values for secondary retrieval schemeare available (block 104). If values for secondary retrieval scheme arenot available, then the messaging system 16 is instructed to retrievemessages from the message queue 22 according to the value set for theprimary retrieval scheme 60 (block 106).

If it is determined that values for secondary retrieval scheme areavailable (block 104), then the dynamic message retrieval component 24determines whether a value is available for the quantity limit 64 (block108). If a value for the quantity limit 64 is available, then thedynamic message retrieval component 24 retrieves the value for thequantity limit 64 (block 110). The dynamic message retrieval component24 also subdivides the message queue 22 into multiple sub-queues basedon the value for quantity limit 64 (block 112).

If it is determined that no value for the quantity limit 64 is available(block 108), then the dynamic message retrieval component 24 determineswhether a value is available for the time limit 66 (block 114). If avalue is available for the time limit 66, then the dynamic messageretrieval component 24 retrieves the value for the time limit (block116). The dynamic message retrieval component 24 also subdivides themessage queue 22 into multiple sub-queues based on the value for thetime limit 66 (block 112).

If it is determined that no value for the time limit 66 is available(block 114), then no value was set in messaging business rules 26 foreither the quantity limit 64 or the time limit 66. This may be treatedas an error condition that is resolved as if no secondary retrievalscheme 62 was specified, and the process continues at block 106.

If a value exists for either the quantity limit 64 the time limit 66,then the process continues with the dynamic message retrieval component24 instructing the messaging system 16 to access each of the sub-queuesusing the value set for the secondary retrieval scheme 62 (block 122).The dynamic message retrieval component 24 also instructs the messagingsystem to retrieve messages from each of the sub-queues using value setfor the primary retrieval scheme 60 (block 124).

The dynamic message retrieval component 24 may periodically access themessaging business rules 26 to check for updated values (block 126). Theactual time intervals between access of the business rules 26 isdependent upon application, but example time intervals include hourly ordaily access. In one embodiment, the time interval may be configurableby an administrator or user.

Below are several example scenarios of the messaging business rules 26which are provided to illustrate the exemplary embodiments.

EXAMPLE 1

In Example 1, the two sets of business rules values are defined asfollows:

-   -   Calendar Entry: UNSET    -   Primary Retrieval Scheme: FIFO    -   Secondary Retrieval Scheme: NONE    -   Quantity Limit: N/A    -   Calendar Entry: Starting on the 15th of the month and ending on        the 16th of the month    -   Primary Retrieval Scheme: Random Retrieval    -   Secondary Retrieval Scheme: LIFO    -   Quantity Limit: 10    -   Time Limit: NONE

In this example, the different sets of messaging business rules causesthe messaging system 16 to automatically employ a different messageretrieval scheme based on the calendar settings. The first set ofmessaging business rules defines a standard queuing scheme (FIFO) thatwill be used by the messaging system 16 for all time periods. The secondset of messaging business rules defines an exception to the standardqueuing scheme (RANDOM) that will be used by the messaging system 16only on the 15th and 16^(th) of the month, as specified by the “CalendarEntry” value.

FIG. 6 is a diagram graphically illustrating message processing based onthe messaging business rules of Example 1. During standard monthlyprocessing, the primary retrieval scheme is set to FIFO without asecondary retrieval scheme. Therefore, messages 150 are retrieved fromthe message queue 152 using FIFO.

When the dynamic message retrieval component 24 determines the systemdate matches the dates of the calendar entry in the second set ofbusiness rules, then processing is performed as specified in the secondset of business rules. First, the message queue 152 is subdivided intosub-queues of 10 messages each, as specified by the quantity limit,creating 1^(st), 2^(nd), 3^(rd) . . . nth sub-queues. Next, thesub-queues are accessed according to the order specified in thesecondary retrieval scheme, which is set to LIFO. As such, the latest orNth sub-queue is accessed first. And the messages therein are accessedvia the primary retrieval scheme, which is set to random.

EXAMPLE 2

In Example 2, one set of business rules values are defined as follows:

-   -   Calendar Entry: UNSET    -   Primary Retrieval Scheme: LIFO    -   Secondary Retrieval Scheme: FIFO    -   Quantity Limit: NONE    -   Time Limit: 10 minutes        In this example, there is no calendar entry so a combination of        FIFO for the sub-queues and LIFO for the messages will be used        for all time periods.

FIG. 7 is a diagram graphically illustrating message processing based onthe messaging business rules of Example 2. The message queue 152 issubdivided into sub-queues of 10 messages each, as specified by thequantity limit, creating 1^(st), 2^(nd), 3^(rd) . . . nth sub-queues.Next, the sub-queues are accessed according to the order specified inthe secondary retrieval scheme, which is set to FIFO, meaning the 1stsub-queue is accessed first. The messages are then accessed via theprimary retrieval scheme, which is set to LIFO.

Although there are no time period settings, additional settings could beapplied for a new time period by creation of a calendar entry in themessaging business rules 26. Modification to the messaging businessrules 26 by an administrator can be done without any applicationdowntime.

The exemplary embodiments will be further explained by way of use cases.

Use Case 1:

A company that manages the distribution of tickets for a major NFLfranchise has decided to run a promotion that will reward free regularseason tickets to 100 customers who purchase tickets to the team'spreseason games. In order to give each customer an equal chance atwinning the tickets, the company has decided not to award the freetickets to the first 100 customers, but would rather select the winnersrandomly based on the week in which the purchase was made. The desiredaffect is to give everyone who purchases a ticket in Week 1 an advantageover Week 2 customers, but everyone who purchases a ticket in Week 1shall have an equal chance at winning the tickets. This problem can besolved by configuring the messaging system to retrieve messages from thequeue randomly for the group of purchases made in Week 1, and continuewith the same scheme in Week 2 after Week 1 processing is complete.

The business rules for this scenario would be set as follows:

-   -   Calendar Entry: UNSET    -   Primary Retrieval Scheme: Random Retrieval    -   Secondary Retrieval Scheme: FIFO    -   Quantity Limit: NONE    -   Time Limit: 1 Week

Use Case 2:

A human resources application continuously processes messages retrievedfrom a queue throughout the month. For the majority of the month,several different types of requests are sent to the queue, includingtravel reimbursements, new-hire relocation expense reports, etc.Recently, it has been determined that all payroll requests will besubmitted on the 15th of the month and these requests must be given ahigher priority over all other requests in the queue. The applicationteam must accommodate this change without making any changes to theapplication. A business rule can be used to change the retrieval optionsfor the messaging system so that a LIFO scheme will be used on the 15thof the month, and FIFO at all other times.

The business rules for this scenario would be set as follows:

-   -   Calendar Entry: Starting on the 15^(th) of the month, and ending        on the 16^(th)    -   Primary Retrieval Scheme: LIFO    -   Secondary Retrieval Scheme: NONE    -   Quantity Limit: NONE    -   Time Limit: NONE    -   Calendar Entry: UNSET    -   Primary Retrieval Scheme: FIFO    -   Secondary Retrieval Scheme: NONE    -   Quantity Limit: NONE    -   Time Limit: NONE

Use Case 3:

A service provider processes messages from a queue in a traditionalfashion, but each month there is a spike in demand that causes shortagesfrom the 25th of the month to the end of the month. During this period,the service provider has decided not to reward clients based on theirposition in the queue. There is a business requirement to have messagesretrieved randomly from the queue during the peak period at the end ofthe month. This scenario can be solved with the use of a messagingsystem that is configured to retrieve messages in a FIFO fashion fromthe beginning of the month until the 25th of the month, and then use arandom retrieval scheme from the 25th to the end of the month.

The business rules for this scenario would be set as follows:

Calendar Entry: Starting on the 25th of the month, and ending on thelast day of the month

Primary Retrieval Scheme: Random Retrieval

Secondary Retrieval Scheme: NONE

Quantity Limit: NONE

Time Limit: NONE

Calendar Entry: UNSET

Primary Retrieval Scheme: FIFO

Secondary Retrieval Scheme: NONE

Quantity Limit: NONE

Time Limit: NONE

A method and system for dynamically changing a message retrieval schemeduring runtime has been disclosed. As will be appreciated by one skilledin the art, aspects of the present invention may be embodied as asystem, method or computer program product. Accordingly, aspects of thepresent invention may take the form of an entirely hardware embodiment,an entirely software embodiment (including firmware, resident software,micro-code, etc.) or an embodiment combining software and hardwareaspects that may all generally be referred to herein as a “circuit,”“module” or “system.” Furthermore, aspects of the present invention maytake the form of a computer program product embodied in one or morecomputer readable medium(s) having computer readable program codeembodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, or semiconductor system, apparatus, or device, or anysuitable combination of the foregoing. More specific examples (anon-exhaustive list) of the computer readable storage medium wouldinclude the following: an electrical connection having one or morewires, a portable computer diskette, a hard disk, a random access memory(RAM), a read-only memory (ROM), an erasable programmable read-onlymemory (EPROM or Flash memory), an optical fiber, a portable compactdisc read-only memory (CD-ROM), an optical storage device, a magneticstorage device, or any suitable combination of the foregoing. In thecontext of this document, a computer readable storage medium may be anytangible medium that can contain, or store a program for use by or inconnection with an instruction execution system, apparatus, or device.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention have been described with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The present invention has been described in accordance with theembodiments shown, and one of ordinary skill in the art will readilyrecognize that there could be variations to the embodiments, and anyvariations would be within the spirit and scope of the presentinvention. Accordingly, many modifications may be made by one ofordinary skill in the art without departing from the spirit and scope ofthe appended claims.

We claim:
 1. A system, comprising: a memory that stores a message queueand business rules, wherein the messaging business rules define aprimary retrieval scheme and a secondary retrieval scheme, and wherein avalue set for each of the primary retrieval scheme and the secondaryretrieval scheme are selected from a combination of different messageretrieval types including: First In First Out (FIFO) message retrieval,Last In First Out (LIFO) message retrieval, and random messageretrieval, a processor coupled to the memory; and a software componentexecuted by the processor that is configured to: subdivide the messagequeue into sub-queues based on at least one of a message quantity limitand a message received time limit specified in the messaging businessrules; access each of the sub-queues using the value of the secondaryretrieval scheme; and retrieve messages from each of the sub-queuesusing the value of the primary retrieval scheme.
 2. The system of claim1 wherein the software component is further configured to access fromthe messaging business rules a calendar entry value and at least one ofa quantity limit value and a time limit value.
 3. The system of claim 2wherein the software component is further configured to use the calendarentry value to set different retrieval schemes based on calendar datesfor multiple time periods.
 4. The system of claim 2 wherein the softwarecomponent is further configured to use the primary and secondaryretrieval schemes to set different retrieval schemes based a number ofmessages received.
 5. The system of claim 2 wherein the softwarecomponent is further configured to use the time limit along with theprimary and secondary retrieval schemes to set different retrievalschemes based a number of messages received in a given amount of time.6. The system of claim 1 wherein possible values for the secondaryretrieval scheme include the FIFO, the LIFO, the random messageretrieval types, and NONE.
 7. The system of claim 1 wherein the softwarecomponent is further configured to access a current date timestamp of aserver upon startup.
 8. The system of claim 7 wherein the softwarecomponent is further configured to retrieve a calendar entry from themessaging business rules that is valid for the current date timestamp.9. The system of claim 7 wherein the software component is responsive toa determination that a value for the secondary retrieval scheme is notavailable, to instruct the messaging system to retrieve messages fromthe message queue according to the value set for the primary retrievalscheme.
 10. The system of claim 1 wherein the software component isfurther configured to periodically access the messaging business rulesto check for updated values.
 11. An executable software product storedon a non-transitory computer-readable medium containing programinstructions for dynamically changing a message retrieval scheme duringruntime in a client/server electronic messaging system in which theserver executes a message retrieval component and incoming messagesreceived from the client is stored in a message queue, the programinstructions for: accessing messaging business rules from a memory bythe message retrieval component at runtime, wherein the messagingbusiness rules define a primary retrieval scheme and a secondaryretrieval scheme, and wherein a value provided for each of the primaryretrieval scheme and the secondary retrieval scheme are selected from acombination of different message retrieval types including: First InFirst Out (FIFO), Last In First Out (LIFO), and random; subdividing themessage queue into sub-queues based on at least one of a messagequantity limit and a message received time limit specified in themessaging business rules; accessing each of the sub-queues using thevalue of the secondary retrieval scheme; and retrieving messages fromeach of the sub-queues using the value of the primary retrieval scheme.